#!/usr/bin/env python3
#maven增量打包，通过判断pom.xml下对应src目录是否发生改变，来增量打包
import utils.ConfUtil 
import utils.CommonUtil
import utils.Log
import os
import sys
log=utils.Log.getLogger()
argv=sys.argv[1:]
if len(argv)<1: 
    log.warning("usage: $0 SERVICE(服务名)")
    exit()
SERVICE=argv[0]
config=utils.ConfUtil.config('conf/publish.conf')
GIT_ROOT_PATH=config["System"]["GitRootPath"]
print("Maven根目录"+GIT_ROOT_PATH)
utils.CommonUtil.execCmd("cd "+GIT_ROOT_PATH+" && git pull")
POM_LIST_STR=utils.CommonUtil.execCmd("find "+GIT_ROOT_PATH+" -name pom.xml")
POM_LIST=POM_LIST_STR.split("\n")
#判断根目录下是否存在pom.md5，如果不存在则打全量包，并生成初始化的pom.md5
GIT_ROOT_POM=GIT_ROOT_PATH+"/pom.xml"
GIT_ROOT_MD5=GIT_ROOT_PATH+"/pom.md5"
SERVICE_GIT_PATH=config[SERVICE]["GitPath"]
SERVICE_POM=SERVICE_GIT_PATH+"/pom.xml"
SERVICE_GIT_CHANGE=0
if not os.path.exists(GIT_ROOT_MD5):
    log.debug("打全量包:"+GIT_ROOT_POM)
    utils.CommonUtil.execCmd("mvn clean install -f "+GIT_ROOT_POM)
for POM in POM_LIST:
    pomMd5=utils.CommonUtil.getPomMd5(POM)
    pomMd5Path=POM.replace("pom.xml","pom.md5")
    #判断src目录文件有变动
    if not os.path.exists(pomMd5Path):
        log.debug("写入pom.md5"+pomMd5Path)
        utils.CommonUtil.writeFile(pomMd5Path,pomMd5)
    else:
        pomMd5Old=utils.CommonUtil.readFile(pomMd5Path)
        if pomMd5Old!=pomMd5:
            if POM!=SERVICE_POM:
                log.debug("打增量包:"+POM)
                utils.CommonUtil.execCmd("mvn clean install -f "+POM)
                utils.CommonUtil.writeFile(pomMd5Path,pomMd5)
log.info("打服务包:"+SERVICE_POM)
pomMd5=utils.CommonUtil.getPomMd5(SERVICE_POM)
pomMd5Path=SERVICE_POM.replace("pom.xml","pom.md5")
utils.CommonUtil.execCmd("mvn clean install -f "+SERVICE_POM)
if pomMd5Old!=pomMd5:
    utils.CommonUtil.writeFile(pomMd5Path,pomMd5)
